/*
*  Copyright (c) 2001 Sun Microsystems, Inc.  All rights
*  reserved.
*
*  Redistribution and use in source and binary forms, with or without
*  modification, are permitted provided that the following conditions
*  are met:
*
*  1. Redistributions of source code must retain the above copyright
*  notice, this list of conditions and the following disclaimer.
*
*  2. Redistributions in binary form must reproduce the above copyright
*  notice, this list of conditions and the following disclaimer in
*  the documentation and/or other materials provided with the
*  distribution.
*
*  3. The end-user documentation included with the redistribution,
*  if any, must include the following acknowledgment:
*  "This product includes software developed by the
*  Sun Microsystems, Inc. for Project JXTA."
*  Alternately, this acknowledgment may appear in the software itself,
*  if and wherever such third-party acknowledgments normally appear.
*
*  4. The names "Sun", "Sun Microsystems, Inc.", "JXTA" and "Project JXTA"
*  must not be used to endorse or promote products derived from this
*  software without prior written permission. For written
*  permission, please contact Project JXTA at http://www.jxta.org.
*
*  5. Products derived from this software may not be called "JXTA",
*  nor may "JXTA" appear in their name, without prior written
*  permission of Sun.
*
*  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
*  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
*  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
*  DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
*  ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
*  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
*  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
*  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
*  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
*  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
*  SUCH DAMAGE.
*  ====================================================================
*
*  This software consists of voluntary contributions made by many
*  individuals on behalf of Project JXTA.  For more
*  information on Project JXTA, please see
*  <http://www.jxta.org/>.
*
*  This license is based on the BSD license adopted by the Apache Foundation.
*
*  $Id: NetBeamsMenuBar.java,v 1.1 2006/06/13 07:02:31 nano Exp $
*/

package net.jxta.myjxta.misc.beam;

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class NetBeamsMenuBar extends JMenuBar implements ActionListener {
    private JMenu filemenu = null;
    private JMenuItem filemenu_exit = null;
    private JMenuItem filemenu_new = null;
    private JMenuItem filemenu_open = null;
    private JMenuItem filemenu_imp = null;
    private JMenuItem filemenu_save = null;
    private JMenuItem filemenu_saveas = null;
    private JMenuItem filemenu_close = null;

    private JMenu editmenu = null;
    private JMenuItem editmenu_undo = null;
    private JMenuItem editmenu_redo = null;
    private JMenuItem editmenu_cut = null;
    private JMenuItem editmenu_copy = null;
    private JMenuItem editmenu_paste = null;
    private JMenuItem editmenu_del = null;
    private JMenuItem editmenu_sel = null;
    private JMenuItem editmenu_find = null;
    private JMenuItem editmenu_prefs = null;

    private JMenu actmenu = null;
    private JMenuItem actmenu_add = null;
    private JMenuItem actmenu_remove = null;
    private JMenuItem actmenu_cal = null;

    private JMenu optmenu = null;

    private JMenu helpmenu = null;
    private JMenuItem helpmenu_about = null;

    private JFrame mainwin = null;
    private NetBeamsPanel nbp = null;

    public NetBeamsMenuBar(NetBeamsPanel nbp) {
        this(nbp, null);
    }

    public NetBeamsMenuBar(NetBeamsPanel nbp, JFrame mainwin) {
        super();
        this.nbp = nbp;
        this.mainwin = mainwin;

        filemenu = new JMenu("File");
        filemenu_new = new JMenuItem("New");
        filemenu_new.addActionListener(this);
        filemenu.add(filemenu_new);
        filemenu_open = new JMenuItem("Open");
        filemenu_open.addActionListener(this);
        filemenu.add(filemenu_open);
        filemenu_imp = new JMenuItem("Import");
        filemenu_imp.addActionListener(this);
        filemenu.add(filemenu_imp);

        filemenu.addSeparator();

        filemenu_save = new JMenuItem("Save");
        filemenu_save.addActionListener(this);
        filemenu.add(filemenu_save);
        filemenu_saveas = new JMenuItem("Save As");
        filemenu_saveas.addActionListener(this);
        filemenu.add(filemenu_saveas);

        filemenu.addSeparator();

        filemenu_close = new JMenuItem("Close");
        filemenu_close.addActionListener(this);
        filemenu.add(filemenu_close);

        filemenu.addSeparator();

        if (mainwin != null) {
            filemenu_exit = new JMenuItem("Exit");
            filemenu_exit.addActionListener(this);
            filemenu.add(filemenu_exit);
        }

        editmenu = new JMenu("Edit");
        editmenu_undo = new JMenuItem("Undo");
        editmenu_undo.addActionListener(this);
        editmenu.add(editmenu_undo);
        editmenu_redo = new JMenuItem("Redo");
        editmenu_redo.addActionListener(this);
        editmenu.add(editmenu_redo);

        editmenu.addSeparator();

        editmenu_cut = new JMenuItem("Cut");
        editmenu_cut.addActionListener(this);
        editmenu.add(editmenu_cut);
        editmenu_copy = new JMenuItem("Copy");
        editmenu_copy.addActionListener(this);
        editmenu.add(editmenu_copy);
        editmenu_paste = new JMenuItem("Paste");
        editmenu_paste.addActionListener(this);
        editmenu.add(editmenu_paste);
        editmenu_del = new JMenuItem("Delete");
        editmenu_del.addActionListener(this);
        editmenu.add(editmenu_del);

        editmenu.addSeparator();

        editmenu_sel = new JMenuItem("Select-All");
        editmenu_sel.addActionListener(this);
        editmenu.add(editmenu_sel);

        editmenu.addSeparator();
        editmenu_find = new JMenuItem("Find");
        editmenu_find.addActionListener(this);
        editmenu.add(editmenu_find);

        editmenu.addSeparator();

        editmenu_prefs = new JMenuItem("Preferences");
        editmenu_prefs.addActionListener(this);
        editmenu.add(editmenu_prefs);

        actmenu = new JMenu("Actions");
        actmenu_add = new JMenuItem("Add Sensor");
        actmenu_add.addActionListener(this);
        actmenu.add(actmenu_add);
        actmenu_remove = new JMenuItem("Remove Sensor");
        actmenu_remove.addActionListener(this);
        actmenu.add(actmenu_remove);
        actmenu_cal = new JMenuItem("Calibrate Sensor");
        actmenu_cal.addActionListener(this);
        actmenu.add(actmenu_cal);

        optmenu = new JMenu("Options");

        helpmenu = new JMenu("Help");
        helpmenu_about = new JMenuItem("About");
        helpmenu_about.addActionListener(this);
        helpmenu.add(helpmenu_about);

        add(filemenu);
        add(editmenu);
        add(actmenu);
        add(optmenu);
        add(helpmenu);
    }

    public void actionPerformed(ActionEvent e) {
        if (e.getSource() == filemenu_exit) {
            if (mainwin != null) {
                mainwin.setVisible(false);
                System.exit(0);
            }
        } else if (e.getSource() == helpmenu_about) {
            NetBeamsAboutDialog nbd = new NetBeamsAboutDialog(mainwin);
            nbd.setVisible(true);
        } else if (e.getSource() == actmenu_add) {
            String[] types = {"Temperature", "Pressure", "Salinity", "Turbidity", "Comtaminant"};
            NetBeamsAddSensorDialog nbd = new NetBeamsAddSensorDialog(mainwin, types, nbp);
        }
    }
}
